/**
 * creater:han.zwen@dhc.com.cn
 * create time:2016-06-01 10:14:53
 * describe:上拉刷新与下拉加载
 */
APP.controller('PaginationController', ['$scope', 'PaginationService', '$timeout',
  function ($scope, PaginationService, $timeout) {

    /***变量声明***/
    $scope.data = {
      value: ''
    };

    $scope.dataList = [];//数据集合
    $scope.hasMore = true;//控制知否加载更多的开关。
    $scope.pageSize = CONFIG.pageSize;//每页加载的数据条数。
    $scope.pageNumber = 0;//当前页码。
    $scope.total = undefined;//一共有多少条数据。


    /**
     * 初始化函数
     */
    $scope.init = function () {
      $scope.data = {
        value: ''
      };
      $scope.dataList = [];//数据集合
      $scope.hasMore = true;//控制知否加载更多的开关。
      $scope.pageSize = CONFIG.pageSize;//每页加载的数据条数。
      $scope.pageNumber = 0;//当前页码。
      $scope.total = undefined;//一共有多少条数据。
      $scope.loadData();
    };


    $scope.loadData = function () {
      var data = PaginationService.doSomethindToGetData($scope.pageNumber, $scope.pageSize);
      $timeout(function () {
        $scope.pageNumber = data.pageNumber;
        $scope.total = data.total;
        $scope.dataList = $scope.dataList.concat(data.data);
        $scope.hasMore = $scope.pageNumber * $scope.pageSize < data.total;
        $scope.$broadcast('scroll.refreshComplete');
        $scope.$broadcast('scroll.infiniteScrollComplete');
      }, 2000);
    };

    /*
     $scope.init();//如果页面缓存则用此方法初始化
     */
    $scope.$on('$ionicView.beforeEnter', function () {
      $scope.init(false);
    });
  }
]);


/**
 * creater:chuanpeng.zhu@dhc.com.cn
 * create time:2016-05-30 14:55:01
 * describe:路由跳转缓存实例。从目录页面跳转到此页执行init()方法，从此页跳转到子页面，再跳转回来，不刷新。
 */
APP.service('PaginationService', ['$http', 'UrlService', function ($http, UrlService) {

  /**
   * 获取数据的服务
   * @param pageSize    每页数据条数
   * @param pageNumber  页码参数
   */
  this.doSomethindToGetData = function (pageNumber, pageSize) {
    var tempData = [];
    pageNumber = pageNumber + 1;
    for (var i = 0; i < pageSize; i++) {
      var d = {text: '我是第' + pageNumber + '页的第' + i + '条数据'};
      tempData.push(d);
    }
    return {
      code: 0,
      data: tempData,
      total: 50,
      pageSize: pageSize,
      pageNumber: pageNumber
    };

  }

}]);
